import $ from 'jquery'

export const zhilianService = {
    /*
    * 采集的信息
    *  「
    *
    *   教育经历、工作经历
    * 姓名、手机号、邮箱、性别、年龄、学历、城市、公司、职位、学校、专业、行业、标签、工作年限、期望薪资
    *
    * 」
    * */
    // 采集开始
    collection() {
        console.log('*** 智联 ***');

        let base = getBasicInfo()
        let desired = getDesired()
        let eduction = getEducation()
        let work = getWorkInfo()
        let pro = getProInfo()
        let evaluation = getEvaluation()
        let other = getOther()
        let htmlFile = $util.htmlToString(document) // 获取源html代码

        // 基本信息
        function getBasicInfo() {
            /*
             * nameZh 中文名
             * email 中文名
             * phone 中文名
             * sex 性别
             * studioTime 工作年限 (秒数)
             * birth 生日 (时间戳)
             * nowCity 当前城市  上海-浦东
             * nowCityType: 'sys',
             * status 当前状态
             * maritalStatus 婚姻状态
             * qualifications 学历,
             * currentYearlySalary 当前年薪
             * currentYearlySalaryRemark 年薪备注
             * photoUrl 个人头像
             * currentIntention 当前状态 数字形式
             * */

            // 姓名
            let name = $('span.resume-basic__name').text().trim()
            var contactArr = $('.resume-basic .resume-basic__contact').text().trim().split(' ')

            // 手机号
            let phone = contactArr[0]
            if (!phone) {
                phone = $('.resume-basic').text().match(/\s*(\d{11})\s*/)
                phone = phone ? phone[1] : ''
            }

            // 邮箱
            let email = contactArr[1]
            if (!email) {
                email = $('.resume-basic').text().match(/[0-9a-zA-Z-_]+@[0-9a-zA-Z-_]+\.[0-9a-zA-Z-_]+/)
                email = email ? email[0] : ''
            }

            //基础信息
            let $baseInfos = $('.resume-basic__chip');
            // 性别
            let sex = $baseInfos.eq(0).text().trim();
            //出生年月
            let age = $baseInfos.eq(1).text().trim().replace('岁','').split('').slice(0,2).join('');

            let birth = $baseInfos.eq(1).text().trim().split('(')[1].replace('月)', '').replace('年', '-')
            //婚姻状况
            let maritalStatus="";
            //学历
            let qualifications =$baseInfos.eq(3).text().trim();//学历
            //现居住地
            let nowCity = $baseInfos.eq(4).text().trim().replace('现居','');
            //工作年限
            let workExperience = $baseInfos.eq(2).text().replace('工作','').replace('年','')
            // 技能标签
            let skills = ''

            let status = $baseInfos.eq($baseInfos.length-1).text().trim();//在职状态

            let currentIntention = $util.getWorkStateStr(status.split('-')[1])

            let photoUrl = $('.km-image__inner').eq(1)[0].currentSrc
            return {
                phone: phone,
                email:email,
                photoUrl,
                name: name, // 姓名
                sex: sex, // 性别
                // imgUrl: imgUrl, // 头像
                status: status, //在职状态
                age: age, // 年龄
                workExperience: workExperience,// 工作年限
                qualifications: qualifications,// 学历
                nowCity: nowCity,// 当前所在城市
                // currentSalary: currentSalary,// 当前薪资
                // currentIndustry: currentIndustry,// 当前行业
                skills: skills, // 技能标签
                birth: birth,
                maritalStatus:maritalStatus,
                currentIntention
            }

        }

        // 职业期望
        function getDesired() {
            /*
           * desiredCitys 期望城市集合
           * desiredJob 期望职位
           * desiredYearlySalary 期望年薪
           * desiredYearlySalaryRemark 年薪备注
           * industries 期望行业
           * */

            let desired = $(".resume-content__body").eq(0).find(".is-mb-12");

            let jobNames=[];
            // 期望地点
            let desiredCitys=[];
            for(let i=0;i<desired.length;i++){
                let $temp =  desired.eq(i);
                let jobNameTmp = $temp.find('.resume-content__main span').eq(0).text().trim();
                jobNames.push(jobNameTmp);
                desiredCitys.push($temp.find('.is-mt-4 .resume-content__chip').eq(0).text().trim().split("-")[0]);
            }

            // 行业，暂时作废不要这个字段，
            let industries ="";
            // 期望职位
            let desiredJob = jobNames.join(",");

            // 期望薪资
            let desiredSalary = desired.eq(0).find('.resume-content__main .is-ml-8').eq(0).text().trim()

            return {
                desiredCitys: desiredCitys[0], // 期望城市集合
                desiredJobName: desiredJob, // 期望职位
                desiredSalary, // 期望薪资
                industries: "" // 期望行业
            }
        }

        //  工作经历
        function getWorkInfo() {
            /*
           * companyName: 公司名,
           * companyDesc: 描述,
           * jobName: 职位,
           * department: 部门,
           * leader: 汇报对象,
           * areaType: 'sys' 所在地区,
           * areaId: 所在地区,
           * subordinateCount: 下属人数,
           * workStart: 开始时间,
           * workEnd: 结束时间,
           * yearlySalary: 年薪,
           * yearlySalaryRemark: 年薪备注,
           * duty: 职责
           * achievement: 业绩,
           * leavingReason: 离职原因
           * */
            let work = []
            let workEls
            $('.resume-content__section').each(function () {
                if ($(this).find('.resume-content__title').text().indexOf('工作') !== -1) {
                    workEls = $(this).find('.km-timeline__item')
                }
            })
            workEls && workEls.each(function (index) {
                let detail = $(this)
                // alert(detail.find('span.resume-content__chip').eq(1).text())
                let workTime = detail.find('.is-mt-4 .resume-content__chip').eq(-1).text().trim().split('-')
                let workStart = workTime[0].trim().replace('.', '-')
                let workEnd = workTime[1].split('(')[0].trim().replace('.', '-')

                let leader = '' ,
                    subordinateCount = 0,
                    department = '',
                    area = ''

                let achievement = ''
                let leavingReason = ''
                let duty = detail.find('span.is-pre').eq(0).text().trim();//detail.find('.resume-content__main .is-ml-16').text().trim()
                let company = detail.find('.resume-content__main span').eq(0).text().trim()
                let companyDesc = '未填写公司描述'

                let jobName = detail.find('.resume-content__main span.is-ml-16').eq(0).text().trim()
                let salary = detail.find('.is-mt-8 span.resume-content__chip').eq(0).text().trim()

                let item = {
                    // achievement: achievement,
                    company: $util.formatStr(company), // 公司名称
                    cpyDesc: $util.formatStr(companyDesc),
                    area: area || '', // 公司所在地区
                    jobName: jobName, // 职位名称
                    // category: category, // 职位类别
                    department: department, // 所在部门
                    leader: leader, // 领导-汇报对象
                    subordinateCount: subordinateCount, //  下属人数
                    startTime: workStart, // 工作时间起
                    endTime: workEnd, // 工作时间止
                    jobSalary: salary, // 薪资待遇
                    workDescription: duty, // 职责业绩
                    leaveReason: '' // 离职原因
                }

                work.push(item)
            })
            return work
        }

        //  项目经历
        function getProInfo() {
            // companyName: '', // 公司名称
            //     jobName: '', // 职位名称
            //     projectName: '', // 项目名称
            //     projectDesc: '', // 项目描述
            //     projectDuty: '', // 项目职责
            //     projectAchievement: '', //  项目业绩
            //     projectStart: null, // 项目开始时间
            //     projectEnd: null, // 项目结束时间
            var proInfo = []
            var proEls
            $('.resume-content__section').each(function () {
                if ($(this).find('.resume-content__title').text().indexOf('项目') !== -1) {
                    proEls = $(this).find('.km-timeline__item')
                }
            })
            proEls && proEls.each(function () {
                /*
                 * companyName: 公司名,
                 * jobName: 职位,
                 * projectDesc: 项目描述,
                 * projectDuty: 项目职责,
                 * projectAchievement: 项目业绩,
                 * projectStart: 开始时间,
                 * projectEnd: 结束时间,
                 * */
                let detail = $(this)
                let data = {
                    companyName: '', // 公司名称
                    position: '', // 职位名称
                    name: '', // 项目名称
                    description: '', // 项目描述
                    content: '', // 项目职责
                    projectAchievement: '', //  项目业绩
                    startTime: null, // 项目开始时间
                    endTime: null, // 项目结束时间
                }
                data.name = detail.find('.resume-content__main').eq(0).text().trim()
                let time = detail.find('span.resume-content__chip').eq(0).text().trim().split('-')
                // time = $util.getStartToEndTime(time)
                data.startTime = time[0].trim().replace('.', '-')
                data.endTime = time[1].trim().substr(0, 7).replace('.', '-')
                // data.content = detail.find('.is-pre').eq(0).text().trim()
                data.description = detail.find('.is-pre').eq(0).text().trim()
                proInfo.push(data)
            })
            return proInfo
        }

        // 教育经历
        function getEducation() {
            /*
             * schoolName: 学校名称
             * majorName: 专业名称
             * startDate: 开始时间
             * endDate: 结束时间
             * qualifications: 学历
             * theEntranceExamination: 是否统招 0 否 1 是
             * */
            let education = []
            let educationEls
            $('.resume-content__section').each(function () {
                if ($(this).find('.resume-content__title').text().indexOf('教育') !== -1) {
                    educationEls = $(this).find('.km-timeline__item')
                }
            })
            educationEls && educationEls.each(function () {
                let time = $(this).find('span.resume-content__chip').eq(0).text().trim().split('-');
                // time = $util.getStartToEndTime(time)

                let schoolName = $(this).find('.resume-content__main span').eq(0).text().trim();
                let majorName = $(this).find('.resume-content__main span').eq(1).text().trim();
                let startDate = time[0].replace('.', '-');
                let endDate = time[1].replace('.', '-');
                let qualifications = $(this).find('span.resume-content__chip').eq(1).text().trim()

                let theEntranceExamination = $(this).find('span.resume-content__chip').eq(2).text().trim()
                if (theEntranceExamination.indexOf('统招') !== -1) {
                    theEntranceExamination = 1
                } else {
                    theEntranceExamination = 0
                }

                let educationItem = $util.getEducation(qualifications)

                let item = {
                    school: schoolName, // 学校名称
                    majorName: majorName, // 专业名称
                    startTime: startDate, // 开始时间
                    endTime: endDate, // 结束时间
                    qualifications: qualifications, // 学位
                    education: educationItem,
                    theEntranceExamination: theEntranceExamination, // 是否统招
                    description	: "", // 描述
                }
                education.push(item)

            })
            return education
        }

        // 自我评价
        function getEvaluation() {
            let evaluation = ''
            $('.resume-content__section').each(function () {
                if ($(this).find('.resume-content__title').text().indexOf('自我') !== -1) {
                    evaluation = $(this).find('span.is-pre').text().trim()
                }
            })
            return evaluation
        }

        // 其他 -- 语言能力、证书
        function getOther() {

            // 语言
            let language = ''
            // 证书
            let cert = ''
            $('.resume-content__section').each(function () {
                // 语言
                if ($(this).find('.resume-content__title').text().indexOf('语言') !== -1) {
                    language = $(this).find('.resume-content__main.has-text-weight-normal').text().trim()
                }
                //证书
                if ($(this).find('.resume-content__title').text().indexOf('证书') !== -1) {
                    cert = $(this).find('.resume-content__block .resume-content__block-item span').text().trim()
                }
            })

            return {
                language: language,
                cert: cert
            }
        }

        return {
            href: location.href,
            base: base,
            desired: desired,
            workList: work,
            projectList: pro,
            educationList: eduction,
            other: other,
            evaluation: evaluation,
            htmlFile: htmlFile,
            htmlFileName: '智联招聘_' + Date.now() + '.html'
        }
    },
}

